Skip to content

Conversation

@tgarm
Copy link

@tgarm tgarm commented Aug 14, 2024

When compile with Flutter 3.24, it requires higher Gradle version.
This patch added namespace that is required by Gradle 8

@nihal-mentor
Copy link

Failed to handle method call
java.lang.NullPointerException
at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.checkPermissions(FlutterPosPrinterPlatformPlugin.kt:389)
at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.verifyIsBluetoothIsOn(FlutterPosPrinterPlatformPlugin.kt:311)
at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.onMethodCall(FlutterPosPrinterPlatformPlugin.kt:215)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

@harshchovatiya15
Copy link

USB printing not working in android when update android targetSdkVersion 33 to 34

So any have solution?

@tgarm
Copy link
Author

tgarm commented Sep 24, 2024

USB printing not working in android when update android targetSdkVersion 33 to 34

So any have solution?

We are using Android targetSdkVersion 34 and it seems working. Would you describe the issue in more detail?

@tgarm
Copy link
Author

tgarm commented Sep 24, 2024

Failed to handle method call java.lang.NullPointerException at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.checkPermissions(FlutterPosPrinterPlatformPlugin.kt:389) at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.verifyIsBluetoothIsOn(FlutterPosPrinterPlatformPlugin.kt:311) at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.onMethodCall(FlutterPosPrinterPlatformPlugin.kt:215) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267) at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292) at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319) at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12) at android.os.Handler.handleCallback(Handler.java:958) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:257) at android.os.Looper.loop(Looper.java:368) at android.app.ActivityThread.main(ActivityThread.java:8839) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

This issue exists from the original code and we are trying to fix. Please check if it still exists in current update.

@harshchovatiya15
Copy link

harshchovatiya15 commented Sep 24, 2024

USB printing not working in android when update android targetSdkVersion 33 to 34
So any have solution?

We are using Android targetSdkVersion 34 and it seems working. Would you describe the issue in more detail?

I got this type error when printing using USB in targetSdkVersion 34 but It work fine targetSdkVersion 33

ESC POS Printer(10201): Request for device: vendor_id: 1110, product_id: 2056
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): Failed to handle method call
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.PendingIntent.send(android.content.Context, int, android.content.Intent)' on a null object reference
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.os.Parcel.createExceptionOrNull(Parcel.java:3093)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.os.Parcel.createException(Parcel.java:3071)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.os.Parcel.readException(Parcel.java:3054)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.os.Parcel.readException(Parcel.java:2996)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.hardware.usb.IUsbManager$Stub$Proxy.requestDevicePermission(IUsbManager.java:1318)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.hardware.usb.UsbManager.requestPermission(UsbManager.java:1080)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.sersoluciones.flutter_pos_printer_platform.usb.USBPrinterService.selectDevice(USBPrinterService.kt:114)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.connectPrinter(FlutterPosPrinterPlatformPlugin.kt:337)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.onMethodCall(FlutterPosPrinterPlatformPlugin.kt:278)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:258)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)

E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.app.ActivityThread.main(ActivityThread.java:8839)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): Caused by: android.os.RemoteException: Remote stack trace:
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.android.server.usb.UsbUserPermissionManager.requestPermission(UsbUserPermissionManager.java:725)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at com.android.server.usb.UsbService.requestDevicePermission(UsbService.java:549)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.hardware.usb.IUsbManager$Stub.onTransact(IUsbManager.java:684)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.os.Binder.execTransactInternal(Binder.java:1387)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201): at android.os.Binder.execTransact(Binder.java:1299)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform(10201):
V/ESC POS Printer(10201): Printing bytes
E/ESC POS Printer(10201): USB Device is not initialized
V/ESC POS Printer(10201): Failed to connected to device

@tgarm
Copy link
Author

tgarm commented Sep 30, 2024

Still unable to re-produce.

@BLACKCAT25896
Copy link

Can you please update the project in the latest version? Its error for namespace issue

@alphawizzflutterteam
Copy link

facing this issue in Android 14 not below 13 it is working fine.

E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): Failed to handle method call
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): java.lang.NullPointerException
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.checkPermissions(FlutterPosPrinterPlatformPlugin.kt:384)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.verifyIsBluetoothIsOn(FlutterPosPrinterPlatformPlugin.kt:306)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.onMethodCall(FlutterPosPrinterPlatformPlugin.kt:212)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at android.os.Handler.handleCallback(Handler.java:958)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at android.os.Handler.dispatchMessage(Handler.java:99)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at android.os.Looper.loopOnce(Looper.java:224)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at android.os.Looper.loop(Looper.java:318)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at android.app.ActivityThread.main(ActivityThread.java:8727)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
E/MethodChannel#com.sersoluciones.flutter_pos_printer_platform( 6657): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
E/flutter ( 6657): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, null, null, java.lang.NullPointerException
E/flutter ( 6657): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.checkPermissions(FlutterPosPrinterPlatformPlugin.kt:384)
E/flutter ( 6657): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.verifyIsBluetoothIsOn(FlutterPosPrinterPlatformPlugin.kt:306)
E/flutter ( 6657): at com.sersoluciones.flutter_pos_printer_platform.FlutterPosPrinterPlatformPlugin.onMethodCall(FlutterPosPrinterPlatformPlugin.kt:212)
E/flutter ( 6657): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
E/flutter ( 6657): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/flutter ( 6657): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:322)
E/flutter ( 6657): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/flutter ( 6657): at android.os.Handler.handleCallback(Handler.java:958)
E/flutter ( 6657): at android.os.Handler.dispatchMessage(Handler.java:99)
E/flutter ( 6657): at android.os.Looper.loopOnce(Looper.java:224)
E/flutter ( 6657): at android.os.Looper.loop(Looper.java:318)
E/flutter ( 6657): at android.app.ActivityThread.main(ActivityThread.java:8727)
E/flutter ( 6657): at java.lang.reflect.Method.invoke(Native Method)
E/flutter ( 6657): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
E/flutter ( 6657): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
E/flutter ( 6657): )
E/flutter ( 6657): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
E/flutter ( 6657): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18)
E/flutter ( 6657):

@diantahoc
Copy link
Owner

Hello guys I have fixed several issues for Android 14+, one issue that you solved related to lateinit, onAttachedToActivity was not being called due to a change in flutter, now it is properly called.

Additionally, a fix for the USB service PendingIntent was added in the lasted 1.2.2 that caused crashes also.

I will review the remaining changes, and may or may not close this pull request If I apply your changes manually.

Thank you all for your contributions.

@nirmal-kc
Copy link

Hi, I am facing multiple issues on Android, both bluetooth and USB. The application crashes with trying to connect to USB printer. Also, when we try to print the ticket on a bluetooth printer, nothing gets printed(Printer connection works fine, but nothing gets printed). The same however, works fine on IOS/Windows. I am using the same code as that in example. Find below the output from flutter doctor.

[✓] Flutter (Channel stable, 3.24.3, on macOS 15.1.1 24B91 darwin-arm64, locale en-IN)
[!] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/to/macos-android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 16.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.96.2)
[✓] Connected device (2 available)
    ! Error: Browsing on the local area network for Apple 14ProMax. Ensure the device is unlocked and attached with a cable or associated with the same local area
      network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code -27)
[✓] Network resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants